package JVM.第02篇_类的加载篇;

/**
 *  3   沙箱安全机制 （防止污染java自带的类） 如java.lang.String
 *      我们造一个java.lang 包   创一个String类 加一个main方法
 *      他会报错   说没main方法   防止污染java自身的
 *      java.lang.String   这就是沙箱安全机制
 *
 *
 * 沙箱安全机制
 * ●保证程序安全
 * ●保护Java原生的JDK代码
 * Java安全模型的核心就是Java沙箱(sandbox)。什么是沙箱?
 * 沙箱是一个限制程序运行的环境。
 *
 * 沙箱机制就是将Java代码限定在虚拟机(JVM)特定的运行范围中，并且严格限制代码对本地
 * 系统资源访问。通过这样的措施来保证对代码的有限隔离，防止对木地系统造成破坏。
 * 沙箱主要限制系统资源访问，那系统资源包括什么?
 * CPU、内存、文件系统、网络。不同级别的沙箱对这些资源访问的限制也可以不一样。
 * 所有的Java程序运行都可以指定沙箱，可以定制安全策略。
 *
 */
public class C20_相关机制之沙箱安全机制 {
    public static void main(String[] args) {
        //        sun.misc.Launcher//JVM的入口
        Object object =new Object();
        //System.out.println(object.getClass().getClassLoader().getParent().getParent());
        //System.out.println(object.getClass().getClassLoader().getParent());//Bootstrap  没有更上一级的加载器了 会报错
        System.out.println(object.getClass().getClassLoader());//Bootstrap 根加载器 无（由于Bootstrap是c++   所以为null）

        C20_相关机制之沙箱安全机制 jvm=new C20_相关机制之沙箱安全机制();
        System.out.println(jvm.getClass() == C20_相关机制之沙箱安全机制.class);//true

        System.out.println(jvm.getClass().getClassLoader().getParent().getParent());//jvm的上上一个装载
        System.out.println(jvm.getClass().getClassLoader().getParent());//jvm的上一个装载器
        System.out.println(jvm.getClass().getClassLoader());//jvm是谁装载的

    }
}
